// vuex的权限模块
import { asyncRouter, constantRoutes } from '@/router'
const state = {
    routes: constantRoutes
}
const mutations = {
    setRoutes(state, newRoutes) {
        state.routes = [...constantRoutes, ...newRoutes]
    }
}
const actions = {
    filterRoutes(context, menus) {
        const routes = []
            // 筛选出动态路由和中menus中能够对上的路由
        menus.forEach(key => {
                // key就是标识
                // asyncRoutes找有没有对象中的name属性等于key的，如果找不到就没权限如果找到了要筛选出来
                routes.push(...asyncRouter.filter(item => item.name === key)) // 得到一个数组有可能有元素也有可能是空数组
            })
            // 得到的routes是所有模块中满足权限要求的路由数组
            // routes就是当前用户所拥有的动态路由的权限
        context.commit('setRoutes', routes) // 将动态路由提交给mutations
        return routes
    }
}
export default {
    namespaced: true,
    state,
    mutations,
    actions
}